Package GUI

Source Code of GUI.SubmitEntryGUI

package GUI;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import weavingdraft.WeavingDraft;
import weavingdraft.WeavingDraftFrame;

import Background.Contestant;
import Background.Entry;
import Background.Lists;

/**
* A class to display the registration window in the gui.  Builds the window and displays it.
*
* @author Chris Petcher
* @version 27 February, 2013
*
*/
@SuppressWarnings("serial")
public class SubmitEntryGUI extends JFrame
{
 
  /**
   * A dimension used in setting the size of the frame.
   */
 
  private static final Dimension MY_SIZE = new Dimension(1000, 500);
 
  /**
   * A dimension used in setting the size of the frame.
   */
 
  private static final Dimension MY_DESCRIPTION_SIZE = new Dimension(500, 300);

  /**
   * A combo box for the first category.
   */
 
  private JComboBox category;
 
 
  /**
   * An array of strings to hold the combo box selections.
   */
 
  private final String[] selectionStrings = {"", "Blankets", "Clothing", "Tapestry", "Art", "Custom" };

  /**
    * This field is for the Border Layout that contains all my buttons for the submit design stage.
    */

  public Container my_user_card_panel;
 
  /**
   * A panel to go into the center of the borderlayout for the user card.
   */
 
  public JPanel my_center_panel;
 
  /**
    * This field is for the Border Layout that contains all my buttons
    * for the release design stage.
    */

  public Container my_release_panel;
 
  private WeavingDraft draft;
 
  private WeavingDraftFrame frame;

  /**
   * A radiobutton that determines if a user wants thier design released.
   */
 
  private JRadioButton accept;
 
  /**
   * A radiobutton that determines if a user does not want to submit approval.
   */
 
  private JRadioButton deny;
 
  /**
   * A boolean that determines if the release was accepted.
   */
 
  public boolean acceptStatus = false;
 
  /**
   * A textfield to hold the description for the contestant's entry.
   */
 
  private JTextField description;

  /**
   * Constructor for the SubmitEntryGUI.  Sets up the panels for use in the entry submission
   * process.
   */
 
  public SubmitEntryGUI() {
    
      super("Submit an Entry");
    category = new JComboBox(selectionStrings);
      my_release_panel = new JPanel(new BorderLayout());
      my_user_card_panel = new JPanel(new BorderLayout());
      my_center_panel = new JPanel(new GridLayout(3,1));
    accept = new JRadioButton("I wish to release my design to the Sponsors.");
    deny = new JRadioButton("I do not wish to release my design to the Sponsors.");
    description = new JTextField();
    description.setPreferredSize(MY_DESCRIPTION_SIZE);
    draft = new WeavingDraft();

    }

  /**
   *   Method that brings up the entry submission window and sets up the GUI.
   */
    public void start() {
      setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setVisible(true);
        setPreferredSize(MY_SIZE);
        createUserCard();
        validate();
        pack();
    }
   
    /**
     *  Method that returns a reference to the frame we are using.
     * 
     * @return the current frame
     */
    public JFrame getFrame() {
      return this;
    }

    /**
     * Method that creates the necessary buttons for the release panel
     */
   
    public void createUserCard() {
        final JButton next = new JButton("Next");
        final JLabel descriptionBoxLabel = new JLabel("Please enter a brief description " +
            "such as the fibers in the weave, and any other details for the design " +
            "such as handspun or self-dyed yarn.");
        next.addActionListener(new UserCardNextListener(this));
        my_user_card_panel.add(my_center_panel, BorderLayout.CENTER);
        my_center_panel.add(descriptionBoxLabel);
        my_center_panel.add(description);
        my_center_panel.add(category);
        my_user_card_panel.add(next, BorderLayout.SOUTH);
        add(my_user_card_panel);
        my_user_card_panel.setVisible(true);
       
       
     
    }
   
    /**
     * Method that creates the necessary buttons for the release panel
     */
   
    public void createReleaseGrid() {
        final JButton submit = new JButton("Submit");
        submit.addActionListener(new SubmitEntryListener());
        my_release_panel.add(accept, BorderLayout.NORTH);
        my_release_panel.add(deny, BorderLayout.WEST);
          my_release_panel.add(submit, BorderLayout.SOUTH);
          accept.addActionListener(new ActionListener()

            {
              @Override
        public void actionPerformed(final ActionEvent the_event)
           
              {
                accept.setSelected(true);
                deny.setSelected(false);
                acceptStatus = true;
               
              }

            });

          deny.addActionListener(new ActionListener()

          {
            @Override
      public void actionPerformed(final ActionEvent the_event)
         
            {
              accept.setSelected(false);
              deny.setSelected(true);
              acceptStatus = false;
            }

          });
         
      remove(my_user_card_panel);
      add(my_release_panel);
      validate();
    }
   
    /**
     * Inner class to go to the next window in the registration process when  button is pressed.
     * @author Chris Petcher
     */
   
    class UserCardNextListener implements ActionListener {
     
      private SubmitEntryGUI my_entry;
     
      /**
       * Action performed method that displays the about message.
       * @param the_event The event, ignored.
       */
     
      public UserCardNextListener(SubmitEntryGUI the_entry){
        my_entry = the_entry;
     
     
      @Override
      public void actionPerformed(final ActionEvent the_event)
      {
        Contestant c = SignInGUI.getCurrentContestant();
        Entry e1 = c.getEntry1();
        Entry e2 = c.getEntry2();
        Entry e3 = c.getEntry3();
       
        if (category.getSelectedItem().equals("")) {
          JOptionPane.showMessageDialog(my_user_card_panel, "You must select a category.");
         
        }else if(e1.getCategory().equals(category.getSelectedItem().toString()) || e2.getCategory().equals(category.getSelectedItem().toString()) ||
            e3.getCategory().equals(category.getSelectedItem().toString())){
          JOptionPane.showMessageDialog(my_user_card_panel, "Category already submitted!");
        } else {
         
          frame = new WeavingDraftFrame(my_entry, draft);
          frame.start();
          validate();
        }

      }

    }

  /**
   * Inner class to submit the entries when the button is pressed.
   * @author Chris Petcher
   */
  class SubmitEntryListener implements ActionListener {

    /**
     * Action performed method that displays the about message.
     * @param the_event The event, ignored.
     */
    @Override
    public void actionPerformed(final ActionEvent the_event) {
      Contestant c = SignInGUI.getCurrentContestant();
      ArrayList<Entry> contestantEntryList = c.getEntryList();
     
      if(contestantEntryList.size() == 0){
     
        Entry first_entry = c.getEntry1();
        first_entry.setDescription(description.getText());
        first_entry.setCategory((String)category.getSelectedItem());
        first_entry.setDesign(draft.getdraft());
        first_entry.setRelease(acceptStatus);
        c.addEntryToList(first_entry);
        Lists.saveData();
        JOptionPane.showMessageDialog(null, "Thank you for submitting an entry! You have 2 entries left!");
        dispose();
      }
     
      else if(contestantEntryList.size() == 1){
        Entry second_entry = c.getEntry2();
        second_entry.setDescription(description.getText());
        second_entry.setCategory((String)category.getSelectedItem());
        second_entry.setDesign(draft.getdraft());
        second_entry.setRelease(acceptStatus);
        c.addEntryToList(second_entry);
        Lists.saveData();
        JOptionPane.showMessageDialog(null, "Thank you for submitting an entry! You have 1 entry left!");
        dispose();
      }

      else if(contestantEntryList.size() == 2){
        Entry third_entry = c.getEntry3();
        third_entry.setDescription(description.getText());
        third_entry.setCategory((String)category.getSelectedItem());
        third_entry.setDesign(draft.getdraft());
        third_entry.setRelease(acceptStatus);
        c.addEntryToList(third_entry);
        Lists.saveData();
        JOptionPane.showMessageDialog(null, "Thank you for submitting an entry! " +
            "You have submitted the maximum number of 3 entries.");
        dispose();
      }

      else{
        JOptionPane.showMessageDialog(null, "You've already submitted 3 entries!");
      }
     
     
    }// close actionperformed

  }// close listener class

}// close SignInGUI class
TOP

Related Classes of GUI.SubmitEntryGUI

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.